A branch instruction is an instruction in a program that can cause a computer to begin executing a different instruction sequence, deviating from a default behavior of executing instructions in order. Information about the branch instruction may be stored in registers during execution of the program. The branch information may be used for system profiling, debugging, and optimization of memory transactions.